package com.hsjk.szwj.module.pay.dal.dataobject.order;

import com.baomidou.mybatisplus.annotation.TableName;
import com.hsjk.szwj.framework.tenant.core.db.TenantBaseDO;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.time.LocalDateTime;

/**
 * @author chenjiawei
 * @desc
 * @Date 2023/08/23 17:12
 **/
@TableName("train_transfer_order")
@Data
@EqualsAndHashCode(callSuper = true)
public class TransferOrderDO extends TenantBaseDO {

    //订单生成
    public static final int STATE_INIT = 0;
    //转账中
    public static final int STATE_ING = 1;
    //转账成功
    public static final int STATE_SUCCESS = 2;
    //转账失败
    public static final int STATE_FAIL = 3;
    //转账关闭
    public static final int STATE_CLOSED = 4;

    private Long id;
    /**
     * 商户号
     */
    private Long mchId;
    /**
     * 服务商号
     */
    private Long isvId;
    /**
     * 应用ID
     */
    private Long appId;
    /**
     * 商户名称
     */
    private String mchName;
    /**
     * 类型: 1-普通商户, 2-特约商户(服务商模式)
     */
    private Integer mchType;
    /**
     * 商户订单号
     */
    private Long mchOrderId;
    /**
     * 支付接口代码
     */
    private String ifCode;
    /**
     * 入账方式： WX_CASH-微信零钱; ALIPAY_CASH-支付宝转账
     */
    private String entryType;
    /**
     * 转账金额,单位分
     */
    private Long amount;
    /**
     * 三位货币代码,人民币:cny
     */
    private String currency;
    /**
     * 收款账号
     */
    private String accountNo;
    /**
     * 收款人姓名
     */
    private String accountName;
    /**
     * 收款人开户行名称
     */
    private String bankName;
    /**
     * 转账备注信息
     */
    private String transferDesc;
    /**
     * 客户端IP
     */
    private String clientIp;
    /**
     * 支付状态: 0-订单生成, 1-转账中, 2-转账成功, 3-转账失败, 4-订单关闭
     */
    private Integer state;
    /**
     * 特定渠道发起额外参数
     */
    private String channelExtra;
    /**
     * 渠道订单号
     */
    private String channelOrderNo;
    /**
     * 渠道支付错误码
     */
    private String errCode;
    /**
     * 渠道支付错误描述
     */
    private String errMsg;
    /**
     * 商户扩展参数
     */
    private String extParam;
    /**
     * 异步通知地址
     */
    private String notifyUrl;
    /**
     * 转账成功时间
     */
    private LocalDateTime successTime;

}
